In several communications systems the data to be transmitted is compressed so that the available bandwidth is used more efficiently. For example, the Moving Pictures Experts Group (MPEG) has promulgated several standards relating to digital data delivery systems. The first, known as MPEG-1 refers to ISO/IEC standards 11172 and is incorporated herein by reference. The second, known as MPEG-2, refers to ISO/IEC standards 13818 and is incorporated herein by reference. A compressed digital video system is described in the Advanced Television Systems Committee (ATSC) digital television standard document A/53, and is incorporated herein by reference.
A transport stream comprises one or more programs multiplexed together. A program is a collection of individual elementary streams which share a common time base (i.e., the same 27 MHz clock source). The elementary streams comprise encoded video, audio and other bit streams. The elementary streams may be, but do not have to be, in a packetized elementary stream (PES) format prior to transport multiplexing. A PES consists of a packet header followed by a packet payload. As the elementary streams are multiplexed, they are formed into fixed length transport packets. Typically, a control stream that describes the program is also formed into transport packets and included within the same transport stream as the program.
There are many instances where there is a need to modify or replace one or more programs (or portions of programs) within one or more transport streams. It is important to ensure that modification and/or switching operations are performed in a manner that preserves timing information within the modified or switched programs. If timing information is not preserved, undesirable artifacts (e.g., poor “lip sync” within a subsequently presented program) and/or improper buffer behavior (e.g., decoder or other buffer underflow or overflow) may result.
To preserve timing information, present bitstream switching systems typically utilize remultiplexing techniques. For example, to modify a program within a transport stream, the program to be modified is typically demultiplexed from the transport stream, modified and then remultiplexed into the transport stream. Similarly, to replace a program within a transport stream, the program to be replaced is demultiplexed from the transport stream, and the replacement program is queued up and then multiplexed into the transport stream.
Unfortunately, the above-described remultiplexing technique leads to changes in the relative position of packets within the transport stream. Since some of these packets contain clock data, e.g., transport level program clock reference (PCR), any change in the relative position of packets containing clock data requires a modification to that clock data to reflect a new time of arrival at the target MPEG processor. This clock data is typically updated by “restamping” the PCR clock data during the remultiplexing operation.
The complexity of the above-described demultiplexing, queue management, re-clocking, and multiplexing of the MPEG data requires significant control software and hardware resources. The cost of commercial products that provide such resources are not cost or space effective for applications utilizing a large amount of transport streams, such as video on demand applications.
Thus, it is seen to be desirable to provide a cost effective method and apparatus for multiplexing information streams, such as transport level and/or program level MPEG information streams. More generally, it is seen to be desirable to provide a cost effective method and apparatus for forming and processing an information stream including N information sub-streams such that sub-stream multiplexing and other operations may be performed in a cost effective manner.